/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.colegiatura.beans;


import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import org.cip.esymons.colegiatura.bc.CentroTrabajoDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoCentroTrabajoDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoDelegate;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.general.be.CentroTrabajo;
import org.cip.esymons.general.be.ColegiadoCentroTrabajo;

/**
 *
 * @author ADMINISTRADOR
 */
public class colegiadoCentroTrabajoController {


    private ColegiadoCentroTrabajo colCentroTrabajo;
    private ColegiadoCentroTrabajoDelegate delegadoColCentroTrabajo;
    private ColegiadoDelegate delegadoColegiado;
    private Colegiado colegiado;
    private CentroTrabajo centroTrabajo;
    private CentroTrabajoDelegate delegadoCentroTrabajo;

    private String codigoCIP;
    private Boolean bandera;
    private Integer seleccion;
    private Integer cantidad;

    private List<ColegiadoCentroTrabajo> listaColegiadoCentroTrabajo;

    public colegiadoCentroTrabajoController() {

        delegadoCentroTrabajo = new CentroTrabajoDelegate();
        delegadoColCentroTrabajo = new ColegiadoCentroTrabajoDelegate();
        delegadoColegiado = new ColegiadoDelegate();

        centroTrabajo = new CentroTrabajo();
        colCentroTrabajo = new ColegiadoCentroTrabajo();
        colegiado = new Colegiado();
        bandera = false;

        listaColegiadoCentroTrabajo = new ArrayList<ColegiadoCentroTrabajo>();
        listaColegiadoCentroTrabajo = null;
    }

    public Integer getCantidad() {
        return cantidad;
    }

    public void setCantidad(Integer cantidad) {
        this.cantidad = cantidad;
    }

    public List<ColegiadoCentroTrabajo> getListaColegiadoCentroTrabajo() {
        return listaColegiadoCentroTrabajo;
    }

    public void setListaColegiadoCentroTrabajo(List<ColegiadoCentroTrabajo> listaColegiadoCentroTrabajo) {
        this.listaColegiadoCentroTrabajo = listaColegiadoCentroTrabajo;
    }

    public Integer getSeleccion() {
        return seleccion;
    }

    public void setSeleccion(Integer seleccion) {
        this.seleccion = seleccion;
    }

    public Boolean getBandera() {
        return bandera;
    }

    public void setBandera(Boolean bandera) {
        this.bandera = bandera;
    }

    public String getCodigoCIP() {
        return codigoCIP;
    }

    public void setCodigoCIP(String codigoCIP) {
        this.codigoCIP = codigoCIP;
    }


    public CentroTrabajo getCentroTrabajo() {
        return centroTrabajo;
    }

    public void setCentroTrabajo(CentroTrabajo centroTrabajo) {
        this.centroTrabajo = centroTrabajo;
    }

    public ColegiadoCentroTrabajo getColCentroTrabajo() {
        return colCentroTrabajo;
    }

    public void setColCentroTrabajo(ColegiadoCentroTrabajo colCentroTrabajo) {
        this.colCentroTrabajo = colCentroTrabajo;
    }

    public Colegiado getColegiado() {
        return colegiado;
    }

    public void setColegiado(Colegiado colegiado) {
        this.colegiado = colegiado;
    }

    public CentroTrabajoDelegate getDelegadoCentroTrabajo() {
        return delegadoCentroTrabajo;
    }

    public void setDelegadoCentroTrabajo(CentroTrabajoDelegate delegadoCentroTrabajo) {
        this.delegadoCentroTrabajo = delegadoCentroTrabajo;
    }

    public ColegiadoCentroTrabajoDelegate getDelegadoColCentroTrabajo() {
        return delegadoColCentroTrabajo;
    }

    public void setDelegadoColCentroTrabajo(ColegiadoCentroTrabajoDelegate delegadoColCentroTrabajo) {
        this.delegadoColCentroTrabajo = delegadoColCentroTrabajo;
    }

    public ColegiadoDelegate getDelegadoColegiado() {
        return delegadoColegiado;
    }

    public void setDelegadoColegiado(ColegiadoDelegate delegadoColegiado) {
        this.delegadoColegiado = delegadoColegiado;
    }

    public String nuevo(){

        colCentroTrabajo = new ColegiadoCentroTrabajo();
        return "nuevo";
    }

    public String guardar(){

        colCentroTrabajo.setColCodigo(colegiado);
        colCentroTrabajo.setCctEstado(true);
        delegadoColCentroTrabajo.create(colCentroTrabajo);
        colegiado = new Colegiado();
        colCentroTrabajo = new ColegiadoCentroTrabajo();
        mostrarMensaje("INFO: ", "Se registro satisfactoriamente...", FacesMessage.SEVERITY_INFO);
        return null;
    }

    public String editar(){

        colCentroTrabajo.setColCodigo(colegiado);
        delegadoColCentroTrabajo.edit(colCentroTrabajo);
        colCentroTrabajo = new ColegiadoCentroTrabajo();
        mostrarMensaje("INFO: ", "Actualización registrada satisfactoriamente...", FacesMessage.SEVERITY_INFO);
        return "listar";
    }

    public String cancelar(){
        
        colCentroTrabajo = new ColegiadoCentroTrabajo();
        return "listar";
    }

    public String remover(){

        delegadoColCentroTrabajo.remove(colCentroTrabajo);
        colCentroTrabajo = new ColegiadoCentroTrabajo();
        return null;
    }

    public List<ColegiadoCentroTrabajo> getListaColCentroTrabajo(){

        return delegadoColCentroTrabajo.findAll();
    }

         //BUSCAMOS EL COLEGIADO POR CIP
    public String buscaPorCip(){
       try {
           colegiado = new Colegiado();
           Integer cifras = codigoCIP.length();
             if(cifras<3){
                 codigoCIP = "0000"+ codigoCIP;
             }else{
                   if(cifras<4){
                       codigoCIP = "000"+codigoCIP;
                   }else{
                       if(cifras<5){
                           codigoCIP = "00"+codigoCIP;
                       }else{
                           if(cifras<6){
                              codigoCIP = "0"+codigoCIP;
                           }
                       }
                   }
             }
            colegiado = delegadoColegiado.buscaPorCip(codigoCIP);
            codigoCIP = "";
            bandera = true;
            return null;

        } catch (Exception e) {
            return null;
        }
    }

    public List<ColegiadoCentroTrabajo> listaColegiadoCentroTrabajoOrdenCIP(){

        listaColegiadoCentroTrabajo = null;
        listaColegiadoCentroTrabajo = delegadoColCentroTrabajo.listaColegiadoCentroTrabajoOrdenCIP();
        cantidad = listaColegiadoCentroTrabajo.size();
        return listaColegiadoCentroTrabajo;

    }

    public List<ColegiadoCentroTrabajo> listaColegiadoCentroTrabajoOrdenApellidos(){

        listaColegiadoCentroTrabajo = null;
        listaColegiadoCentroTrabajo = delegadoColCentroTrabajo.listaColegiadoCentroTrabajoOrdenApellidos();
        cantidad = listaColegiadoCentroTrabajo.size();
        return listaColegiadoCentroTrabajo;

    }

    public List<ColegiadoCentroTrabajo> listaColegiadoCentroTrabajoOrdenCentro(){

        listaColegiadoCentroTrabajo = null;
        listaColegiadoCentroTrabajo = delegadoColCentroTrabajo.listaColegiadoCentroTrabajoOrdenCentro();
        cantidad = listaColegiadoCentroTrabajo.size();
        return listaColegiadoCentroTrabajo;

    }

    public List<ColegiadoCentroTrabajo> listaColegiadoPorCentroTrabajo(){

        listaColegiadoCentroTrabajo = null;
        listaColegiadoCentroTrabajo = delegadoColCentroTrabajo.listaColegiadoPorCentroTrabajo(centroTrabajo);
        cantidad = listaColegiadoCentroTrabajo.size();
        return listaColegiadoCentroTrabajo;

    }

    public String listaColegiadoCentroTrabajo(){

        if(seleccion == null){

            seleccion = 1;
        }

        switch(seleccion){

            case 1 : listaColegiadoCentroTrabajoOrdenCIP();
                     break;
            case 2 : listaColegiadoCentroTrabajoOrdenApellidos();
                     break;
            case 3 : listaColegiadoCentroTrabajoOrdenCentro();
                     break;
            case 4 : listaColegiadoPorCentroTrabajo();
                     break;
        }
        return null;
    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage());
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }
}
